package com.bookmarket.service.impl;

import com.bookmarket.dao.CzgOrderDao;
import com.bookmarket.entity.Order;
import com.bookmarket.service.CzgIOrderService;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;
import java.util.Map;

/**
 * @author Chen Zhaoguang
 * @date 2017/12/26 14:57
 */
@Service("czgIOrderService")
public class CzgOrderServiceImpl implements CzgIOrderService {

    @Resource
    private CzgOrderDao czgOrderDao;

    @Override
    public Page queryLikeOrders(Map<String, Object> cond) {
        Page page = new Page();
        // 根据条件查询符合的用户列表记录总数，赋值给page的totalNum变量
        page.setTotal(czgOrderDao.getLikeOrdersCount(cond));
        // 从请求参数中获取每页大小
        int pageSize = Integer.parseInt(String.valueOf(cond.get("pageSize")));
        page.setPageSize(pageSize);
        // 从请求参数中获取当前页码
        int curPageNum = Integer.parseInt(String.valueOf(cond.get("pageNum")));
        page.setPageNum(curPageNum);
        //动态计算总页数(总记录数 除以 每页大小，加上  总页数 求余 每页大小，如果余数不为0，则 加 1，否则 加 0 )
        page.setPageNum((int)(page.getTotal()/pageSize+(page.getTotal()%pageSize==0?0:1)));
        //根据条件查询符合的用户列表记录，赋值给page的result变量
        page = PageHelper.startPage(curPageNum, pageSize);
        List list = czgOrderDao.getLikeOrders(cond);
        return page;
    }
    //申请退货
    @Override
    public Page queryLikeSTOrders(Map<String, Object> cond) {
        Page page = new Page();
        // 根据条件查询符合的用户列表记录总数，赋值给page的totalNum变量
        page.setTotal(czgOrderDao.getLikeSTOrdersCount(cond));
        // 从请求参数中获取每页大小
        int pageSize = Integer.parseInt(String.valueOf(cond.get("pageSize")));
        page.setPageSize(pageSize);
        // 从请求参数中获取当前页码
        int curPageNum = Integer.parseInt(String.valueOf(cond.get("pageNum")));
        page.setPageNum(curPageNum);
        //动态计算总页数(总记录数 除以 每页大小，加上  总页数 求余 每页大小，如果余数不为0，则 加 1，否则 加 0 )
        page.setPageNum((int)(page.getTotal()/pageSize+(page.getTotal()%pageSize==0?0:1)));
        //根据条件查询符合的用户列表记录，赋值给page的result变量
        page = PageHelper.startPage(curPageNum, pageSize);
        List list = czgOrderDao.getLikeSTOrders(cond);
        return page;
    }

    //未发货
    @Override
    public Page queryLikeWFOrders(Map<String, Object> cond) {
        Page page = new Page();
        // 根据条件查询符合的用户列表记录总数，赋值给page的totalNum变量
        page.setTotal(czgOrderDao.getLikeWFOrdersCount(cond));
        // 从请求参数中获取每页大小
        int pageSize = Integer.parseInt(String.valueOf(cond.get("pageSize")));
        page.setPageSize(pageSize);
        // 从请求参数中获取当前页码
        int curPageNum = Integer.parseInt(String.valueOf(cond.get("pageNum")));
        page.setPageNum(curPageNum);
        //动态计算总页数(总记录数 除以 每页大小，加上  总页数 求余 每页大小，如果余数不为0，则 加 1，否则 加 0 )
        page.setPageNum((int)(page.getTotal()/pageSize+(page.getTotal()%pageSize==0?0:1)));
        //根据条件查询符合的用户列表记录，赋值给page的result变量
        page = PageHelper.startPage(curPageNum, pageSize);
        List list = czgOrderDao.getLikeWFOrders(cond);
        return page;
    }


    //已发货
    @Override
    public Page queryLikeYFOrders(Map<String, Object> cond) {
        Page page = new Page();
        // 根据条件查询符合的用户列表记录总数，赋值给page的totalNum变量
        page.setTotal(czgOrderDao.getLikeYFOrdersCount(cond));
        // 从请求参数中获取每页大小
        int pageSize = Integer.parseInt(String.valueOf(cond.get("pageSize")));
        page.setPageSize(pageSize);
        // 从请求参数中获取当前页码
        int curPageNum = Integer.parseInt(String.valueOf(cond.get("pageNum")));
        page.setPageNum(curPageNum);
        //动态计算总页数(总记录数 除以 每页大小，加上  总页数 求余 每页大小，如果余数不为0，则 加 1，否则 加 0 )
        page.setPageNum((int)(page.getTotal()/pageSize+(page.getTotal()%pageSize==0?0:1)));
        //根据条件查询符合的用户列表记录，赋值给page的result变量
        page = PageHelper.startPage(curPageNum, pageSize);
        List list = czgOrderDao.getLikeYFOrders(cond);
        return page;
    }

    @Override
    public int fahuoOrder(Order order) {
        return czgOrderDao.fahuoOrder(order);
    }

    @Override
    public int tuihuoOrder(Order order) {
        return czgOrderDao.tuihuoOrder(order);
    }

    //退货
    @Override
    public Page queryLikeTHOrders(Map<String, Object> cond) {
        Page page = new Page();
        // 根据条件查询符合的用户列表记录总数，赋值给page的totalNum变量
        page.setTotal(czgOrderDao.getLikeTHOrdersCount(cond));
        // 从请求参数中获取每页大小
        int pageSize = Integer.parseInt(String.valueOf(cond.get("pageSize")));
        page.setPageSize(pageSize);
        // 从请求参数中获取当前页码
        int curPageNum = Integer.parseInt(String.valueOf(cond.get("pageNum")));
        page.setPageNum(curPageNum);
        //动态计算总页数(总记录数 除以 每页大小，加上  总页数 求余 每页大小，如果余数不为0，则 加 1，否则 加 0 )
        page.setPageNum((int)(page.getTotal()/pageSize+(page.getTotal()%pageSize==0?0:1)));
        //根据条件查询符合的用户列表记录，赋值给page的result变量
        page = PageHelper.startPage(curPageNum, pageSize);
        List list = czgOrderDao.getLikeTHOrders(cond);
        return page;
    }


    public CzgOrderDao getCzgOrderDao() {
        return czgOrderDao;
    }

    public void setCzgOrderDao(CzgOrderDao czgOrderDao) {
        this.czgOrderDao = czgOrderDao;
    }
}
